#include "strapi.h"




int strncmp(const char *s1, const char *s2, int n)
{
    const char *p1 = s1;
    const char *p2 = s2;
    int ret = *p1 - *p2;
    for (int i = 0; *p1 && *p2 && (i < n); i++, p1++, p2++)
    {
        ret = *p1 - *p2;
        if (ret)
        {
            break;
        }
    }
    return ret;
}

int strncpy(char *dst, const char *src, int n)
{
    int i;
    for (i = 0; *src && (i < n - 1); src++, dst++, i++)
    {
        *dst = *src;
    }
    *dst = '\0';
    return i;
}

int strnlen(char *src, int n)
{
    int i;
    for (i = 0; *src && (i < n - 1); src++, i++)
    {
        if('\0' == *src)
        {
            break;
        }
    }
    return i;
}


int snprintf(char* buffer, int length, const char *fmt, ...)
{
    int n = 0;
    va_list args;
    va_start(args, fmt);
    n = vsnprintf(buffer, length, fmt, args);
    va_end(args);
    return n;
}

int strncat(char *dst, const char *src, int n)
{
    int i;
    for (i = 0; *dst && (i < n - 1); dst++, i++)
    {
    }
    if(*dst != '\0')
    {
        return i;
    }
    for (; *src && (i < n - 1); src++, dst++, i++)
    {
        *dst = *src;
    }
    *dst = '\0';
    return i;
}